//定义用户相关数据的ts类型
//用户登录接口携带参数的ts类型
export interface loginFormData {
    username: string,
    password: string,
    rememberMe: boolean
}

//定义全部接口返回数据的ts类型
export interface ResponseData {
    code: number,
    message: string,
}

//定义登录接口返回数据类型
export interface loginResponseData extends ResponseData{
    data:string //登录返回的是token字符串，所以使用string类型
}

//定义获取用户信息接口返回数据类型
export interface UserInfoResponseData extends ResponseData{
    data:{
        userId: number,
        username: string,
        avatar: string,
        buttons: string[],
        routes: string[]
    }
}

//定义用户详细信息类型
export interface UserDetailInfo {
    id?: number
    username: string
    avatar: string
    email?: string
    phone?: string
    nickname?: string
}

//定义更新用户信息参数类型
export interface UpdateUserInfoData {
    avatar?: string
    email?: string
    phone?: string
    nickname?: string
}

//定义用户详细信息接口返回类型
export interface UserDetailResponseData extends ResponseData {
    data: UserDetailInfo
}

//定义退出登录接口返回数据类型
export interface LogoutResponseData extends ResponseData{
    data?: string
}

//定义注册接口携带参数的ts类型
export interface registerFormData {
    username: string,
    password: string,
    confirmPassword: string
}

//定义注册接口返回数据类型
export interface registerResponseData extends ResponseData{
    data?: string
}

// 用户报名活动VO
export interface UserEnrollment {
    enrollmentId: number
    activityId: number
    activityTitle: string
    activityDescription: string
    activityStartTime: string
    activityEndTime: string
    activityLocation: string
    activityStatus: number // 0-未开始，1-进行中，2-已结束
    enrollStatus: number // 0-已报名，1-已取消
    enrollTime: string
    activityImages: string[]
}

// 用户申领失物VO
export interface UserClaim {
    claimId: number
    itemId: number
    itemTitle: string
    itemCategory: string
    itemLocation: string
    itemFoundTime: string
    itemStatus: number // 0-待认领，1-已申领，2-已归还
    claimStatus: number // 0-待审核，1-已通过，2-已驳回
    reason: string
    contactInfo: string
    auditReason?: string
    claimTime: string
    auditTime?: string
    itemImages: string[]
}

// 用户报名活动列表响应
export interface UserEnrollmentsResponseData extends ResponseData {
    data: UserEnrollment[]
}

// 用户申领失物列表响应
export interface UserClaimsResponseData extends ResponseData {
    data: UserClaim[]
}
